trigger PopulateGeocode on Branch__c (after insert, after update) {
	Set<Id> branchesforProcess = new Set<Id>();
	for(Integer i=0; i<Trigger.new.size(); i++){
		if(Trigger.IsUpdate){
			if(Trigger.new[i].City__c != Trigger.oldMap.get(Trigger.new[i].Id).City__c){
				branchesforProcess.add(Trigger.new[i].Id);
			}
		}
		else{
			branchesforProcess.add(Trigger.new[i].Id);
		}
	}
	if(branchesforProcess.size()>0){
		GeoCodeHelper.populateGeoCode(branchesforProcess);
	}
}